#ifndef RP2NAMEIDMCR_H
#define RP2NAMEIDMCR_H

//---------------------------------------------------------------------------------------------------
#define RP2_DECLARE_NAME_ID \
public: \
    virtual Object* GetObjectByName (const std::string& rkName); \
    virtual void GetAllObjectsByName (const std::string& rkName, \
        std::vector<Object*>& rkObjects); \
    virtual Object* GetObjectByID (unsigned int uiID)
//---------------------------------------------------------------------------------------------------
#define RP2_IMPLEMENT_DEFAULT_NAME_ID(classname,baseclassname) \
Object* classname::GetObjectByName (const std::string& rkName) \
{ \
    return baseclassname::GetObjectByName(rkName); \
} \
\
void classname::GetAllObjectsByName (const std::string& rkName, \
    std::vector<Object*>& rkObjects) \
{ \
    baseclassname::GetAllObjectsByName(rkName,rkObjects); \
} \
\
Object* classname::GetObjectByID (unsigned int uiID) \
{ \
    return baseclassname::GetObjectByID(uiID); \
}
//---------------------------------------------------------------------------------------------------

#endif